package com.example.controller;

import com.example.utils.RedisTemplateUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

/**
 * @Description: Token 对应 接口
 * @Author: mingtian
 * @CreateDate: 2019/11/18 13:06
 * @Version: 1.0
 */
@RestController
public class TokenController {
    @Autowired
    private RedisTemplateUtil redisTemplateUtil;

    /**
     * 创建 token 存放到 redis 中
     *
     * @return
     */
    @GetMapping("/createToken")
    public String createToken(String shopId, Integer count) {
        redisTemplateUtil.setList(shopId, count);
        return "生成 token 成功!";
    }

    /**
     * 获取 key 对应的 token,并删除
     *
     * @param shopId
     * @return
     */
    @GetMapping("/getToken")
    public String getToken(String shopId) {
        String token = redisTemplateUtil.getListOneAndDel(shopId);
        if (StringUtils.isEmpty(token)) {
            return "亲,抢购已结束,谢谢参与!";
        }
        return token;
    }

    /**
     * 查询 key 对应的 value 数量
     *
     * @param shopId
     * @return
     */
    @GetMapping("/getCount")
    public Long getCount(String shopId) {
        Long tokenSize = redisTemplateUtil.getCount(shopId);
        return tokenSize;
    }
}